﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Diagnostics;

//Models
using KurupiraApp.Models;

namespace KurupiraApp.Controllers
{
    public class UsuarioController : Controller
    {
        private KurupiraContext db = new KurupiraContext();
        RepositorioGenerico repositorio = new RepositorioObject(new KurupiraContext());        

          //
          // GET: /Usuario/

          public ActionResult Index()
          {
              return View(repositorio.selectAll<Usuario>());            
          }

          //
          // POST /Usuario/create
          [HttpPost]
          public ActionResult Add(Usuario usuario) 
          {                                    
              repositorio.add<Usuario>(usuario);            
              return RedirectToAction("index");            
          }
        
          public ActionResult Create()
          {
              //Retornando Apenas a Views
              return View();
          }
        
          public ActionResult View(int id) 
          {
              return View(repositorio.find<Usuario>(id));            
          }
        
          public ActionResult Edit(int id) 
          {            
              return View(repositorio.find<Usuario>(id));
          }
          [HttpPost]        
          public ActionResult Update(Usuario usuario)
          {                          
              if (ModelState.IsValid) {
                  repositorio.update<Usuario>(usuario);
                  return RedirectToAction("view/" + usuario.UsuarioID, "usuario");            
              }
              return RedirectToAction("index");                
          }
        
          public ActionResult Remove(int id) 
          {
              //Removendo Usuário e Pefil
              repositorio.remove<Perfil>(id);
              repositorio.remove<Usuario>(id);                            
              return RedirectToAction("index");
          }
        
        
          //
          // GET: /Usuario/MeusGrupos/
          public ActionResult MeusGrupos()
          {
              return View();
          }

          //
          // GET: /Usuario/MudarSenha/
          public ActionResult NovaSenha()
          {
              return View();
          }

          protected override void Dispose(bool disposing)
          {
              db.Dispose();
              base.Dispose(disposing);
          }          
    }       
}
